package cn.newstrength.shangyujie.step;

import cn.newstrength.wtdf.plugin.service.RedisService;
import cn.newstrength.wtdf.web.processor.Operation;
import cn.newstrength.wtdf.web.processor.OperationStep;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Map;

/**
 * 获取JWT演示
 * 修改 token="true"
 * <operation id="/sample/tester" name="Step tester" type="api" token="true">
 * header 参数  key ： accessToken
 * @author Xd
 *
 */
public class GetJWTStep implements OperationStep {

	private static final Logger logger = LoggerFactory.getLogger(GetJWTStep.class);

	@Override
	public int excute(Operation oper) {
		String accessToken = oper.getAccessToken();
		logger.info("获取 AccessToken value -> {}",accessToken);
		String redisKey = ("cn:newstrength:nsms:token:".concat(accessToken));
		RedisService redisService = oper.getBean("redisService", RedisService.class);
		/*
		 * 已到达Step的方法无需在判断Token的有效性了（框架已完成了校验）
		 * 此处可能会存在时间上的差异，导致Value不存在，建议增加个判断即可
		 */
//		UserObj userObj = redisService.getByKey(redisKey);
//		if(userObj == null){
//			oper.setTranStepResult(-4, "请登录后使用！", null);
//		} else {
//			oper.setTranStepSuccResult(userObj);
//		}
		return 0;
	}

	@Override
	public int init(Map<String, String> arg0) {
		return 0;
	}
}

